﻿using Microsoft.Reporting.WinForms;
using System;
using Logica;
public class Datos_reportes
{
    private const string reportes = "PlanificacionProduccion.Reportes.";
    
    // FÓRMULAS (ítems e instrucciones asociadas)
    public const string formula_rpt = reportes + "rpt_formula.rdlc";
    public const string formula_ds = "ds_formula";
    
    public const string formula_items_ds = "ds_items";
    public const string formula_items_subrpt = "rpt_formula_items";
    public const string formula_instrucciones_ds = "ds_instrucciones";
    public const string formula_instrucciones_subrpt = "rpt_formula_instrucciones";

    public static void subreporte_formula_items(object sender, SubreportProcessingEventArgs e)
    {
        // Obtengo los valores de los parámetros que reciben los informes internos o secundarios, a partir del informe primario
        int idFormula = 0;

        ReportParameterInfoCollection parametrosInforme = e.Parameters;
        foreach (ReportParameterInfo param in parametrosInforme)
        {
            if (param.Name == "idFormula") idFormula = Convert.ToInt32(param.Values[0]);
        }

        // De acuerdo al informe particular que se está manipulando, obtengo la información que les corresponde
        if (e.ReportPath == formula_items_subrpt) e.DataSources.Add(new ReportDataSource(formula_items_ds, ItemFormula.listar(new string[] { "idFormula" }, new string[] { "E" + idFormula.ToString() })));
        if (e.ReportPath == formula_instrucciones_subrpt) e.DataSources.Add(new ReportDataSource(formula_instrucciones_ds, InstruccionFormula.listar(new string[] { "idFormula" }, new string[] { "E" + idFormula.ToString() })));
    }
}